#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
char s[15][65];
char ans[65];
char temp[65];
int nt[65];
void getnt(char *s)
{
	int len = strlen(s);
	//printf("+++++\n");
	int i = 0;
	int t = -1;
	nt[0]=-1;
	while(i<len)
	{
		//printf("++++\n");
		if(t==-1||s[i]==s[t])
		{
			i++;
			t++;
			nt[i]=t;
		}
		else t = nt[t];
	}
}
int kmp(char *s,char *c)
{
	getnt(s);
	//printf("++++\n");
	int len = strlen(s);
	int i = 0;
	int j = 0;
	while(i<60)
	{
		//printf("+++++\n");
		if(j==-1||s[j]==c[i])
		{
			i++;
			j++;
		}
		else j = nt[j];
		if(j==len) return 1;
	}
	return 0;
}
int main()
{
	int t,flag;
	scanf("%d",&t);
	while(t--)
	{
		
		flag = 0;
		int n,j,i,L,k;
		scanf("%d",&n);
		for(int i = 0;i<n;i++)
		{
			scanf("%s",s[i]);
		}
		for(L = 60;L>=3&&flag==0;L--)
		{
			strcpy(temp,"ZZ");
			//printf("L=%d\n",L);
			for(i = 0;i+L-1<60;i++)
			{
				//printf("*****\n");
				for(j=0;j<L;j++)
				{
					//printf("*****\n");
					ans[j]=s[0][i+j];
				}
				ans[j]='\0';
				//printf("%s\n",ans);
				for(k = 1;k<n;k++)
				{
					//printf("****\n");
					if(!kmp(ans,s[k]))
					{
						//printf("****\n");
						break;
					} 
				}
				//printf("*****\n");
				if(k==n)
				{
					//printf("*****\n");
					//	puts(ans);
					 if (k == n)
               		 {
                    	if(strcmp(temp,ans)>0) 
						{
						//	puts(temp);
						//	puts(ans);
							strcpy(temp,ans);
						}
                  	  flag = 1;
                }
				}
			}
		}
		if(flag) puts(temp);
		else printf("no significant commonalities\n");	
	}
} 
